package com.gdust.hzx.manager.service;

import com.gdust.hzx.model.dto.product.ProductDto;
import com.gdust.hzx.model.entity.product.Product;
import com.github.pagehelper.PageInfo;

/**
 * ClassName: ProductService
 * Package: com.gdust.spzx.manager.service
 * Description:
 *
 * @Author syun
 * @Create 2024/12/22 17:11
 * @Version 1.0
 */
public interface ProductService {
    /**
     * 分页查询产品
     * @param page 分页数
     * @param limit 每页记录数
     * @param productDto 商品搜索条件
     * @return
     */
    PageInfo<Product> findByPage(Integer page, Integer limit, ProductDto productDto);

    /**
     * 自定义方法：保存商品数据
     * @param product
     */
    void save(Product product);

    /**
     * 自定义方法：查询商品详情
     * @param id
     * @return
     */
    Product getById(Long id);

    /**
     * 保存修改数据
     * @param product
     */
    void update(Product product);

    /**
     * 根据id删除商品
     * @param id
     */
    void deleteById(Long id);

    /**
     * 商品审核接口
     * @param id
     * @param auditStatus
     */
    void updateAuditStatus(Long id, Integer auditStatus);

    /**
     * 商品上下架接口
     * @param id
     * @param status
     */
    void updateStatus(Long id, Integer status);
}
